home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / Pascal OS8 / Everything / ModelessText.p < prev    next >
Encoding:
Text File  |  1998-10-30  |  4.4 KB  |  197 lines  |  [TEXT/CWIE]

  1. { ModelessText.p -- modeless dialog }
  2. { Created 10/30/98 1:06 PM by AppMaker }
  3.  
  4. Unit ModelessText;
  5. Interface
  6.  
  7. Uses
  8.     Types,
  9.     Quickdraw,
  10.     Controls,
  11.     Dialogs,
  12.     Events,
  13.     Lists,
  14.     Menus,
  15.     TextEdit,
  16.     DModelessTextData,
  17.     AMDialog;
  18.  
  19. Procedure ShowModelessText;
  20.  
  21. type
  22.     CModelessText        = object (AMDialog)
  23.  
  24.     {data members}
  25.         mData:        DModelessTextData;
  26.  
  27.     mSmallHandle:        ControlHandle;
  28.     mLargeHandle:        ControlHandle;
  29.     mX12345Handle:        ControlHandle;
  30.     mX12345e6Handle:        ControlHandle;
  31.     mPasswordHandle:        ControlHandle;
  32.     mDateHandle:        ControlHandle;
  33.     mTimeHandle:        ControlHandle;
  34.     mStyledHandle:        ControlHandle;
  35.  
  36.     {methods - public}
  37.         Procedure ConnectToData    (inData:    AMSignaler); Override;
  38.  
  39.     {methods - internal}
  40.         Procedure FinishMake; Override;
  41.         Procedure DoItem    (inItemHit:    SInt16); Override;
  42.         Procedure DataChanged    (inDataID:    longint); Override;
  43.  
  44.     end;
  45.  
  46. var
  47.     sModelessTextPtr:        DialogPtr;
  48.  
  49. {----------}
  50. Implementation
  51.  
  52. Uses
  53.     ResourceDefs,
  54.     ControlUtils,
  55.     Miscellany;
  56.  
  57. const
  58.     kSmallField        = 1;
  59.     kLargeField        = 2;
  60.     kX12345Field        = 3;
  61.     kX12345e6Field        = 4;
  62.     kPasswordField        = 5;
  63.     kDateField        = 6;
  64.     kTimeField        = 7;
  65.     kStyledField        = 8;
  66.  
  67.  
  68. {----------}
  69. Function NewModelessText: CModelessText;
  70. var
  71.     dialog:        CModelessText;
  72. begin
  73.     dialog := nil;
  74.     New (dialog);
  75.  
  76.     if dialog <> nil then begin
  77.         dialog.Initialize;
  78.     end;
  79.     NewModelessText := dialog;
  80. end;
  81.  
  82. {----------}
  83. Procedure CreateModelessText;
  84. var
  85.     dialog:        CModelessText;
  86.     data:        DModelessTextData;
  87. begin
  88.     dialog := NewModelessText;
  89.     data := NewDModelessTextData;
  90.  
  91.     dialog.MakeDialog (DLOG_ModelessText);
  92.     dialog.ConnectToData (data);
  93. end; {CreateModelessText}
  94.  
  95. {----------}
  96. Procedure ShowModelessText;
  97. begin
  98.     if sModelessTextPtr = nil then begin
  99.         CreateModelessText;
  100.     end;
  101.     if sModelessTextPtr <> nil then begin
  102.         SelectWindow (sModelessTextPtr);
  103.         ShowWindow (sModelessTextPtr);
  104.     end;
  105. end; {ShowModelessText}
  106.  
  107. {----------}
  108. Procedure CModelessText.FinishMake;
  109. var
  110.     errCode:        OSErr;
  111. begin
  112.     sModelessTextPtr := mDialog;
  113.  
  114.     mSmallHandle := GetControlItem (kSmallField);
  115.     mLargeHandle := GetControlItem (kLargeField);
  116.     mX12345Handle := GetControlItem (kX12345Field);
  117.     mX12345e6Handle := GetControlItem (kX12345e6Field);
  118.     mPasswordHandle := GetControlItem (kPasswordField);
  119.     mDateHandle := GetControlItem (kDateField);
  120.     mTimeHandle := GetControlItem (kTimeField);
  121.     mStyledHandle := GetControlItem (kStyledField);
  122. end;
  123.  
  124. {----------}
  125. Procedure CModelessText.ConnectToData (
  126.     inData:        AMSignaler); Override;
  127. begin
  128.     inherited ConnectToData (inData);
  129.     mData := DModelessTextData (inData);
  130.  
  131.     SetControlText (mSmallHandle, mData.GetSmall3);
  132.     SetControlText (mLargeHandle, mData.GetLarge3);
  133.     SetControlTextValue (mX12345Handle, mData.GetX12347);
  134.     SetControlTextFloat (mX12345e6Handle, mData.GetX12345e8);
  135.     SetControlText (mPasswordHandle, mData.GetPassword3);
  136.     SetClockDateTime (mDateHandle, mData.GetDate3);
  137.     SetClockDateTime (mTimeHandle, mData.GetTime3);
  138.     SetControlText (mStyledHandle, mData.GetStyled3);
  139. end;
  140.  
  141. {----------}
  142. Procedure CModelessText.DoItem (
  143.     inItemHit:        SInt16);
  144. begin
  145.     case inItemHit of
  146.     kSmallField:
  147.             mData.SetSmall3 (GetEditTextStr (mSmallHandle));
  148.     kLargeField:
  149.             mData.SetLarge3 (GetEditTextChars (mLargeHandle));
  150.     kX12345Field:
  151.             mData.SetX12347 (GetControlTextValue (mX12345Handle));
  152.     kX12345e6Field:
  153.             mData.SetX12345e8 (GetControlTextFloat (mX12345e6Handle));
  154.     kPasswordField:
  155.             mData.SetPassword3 (GetEditTextPasswordStr (mPasswordHandle));
  156.     kDateField:
  157.             mData.SetDate3 (GetClockDateTime (mDateHandle));
  158.     kTimeField:
  159.             mData.SetTime3 (GetClockDateTime (mTimeHandle));
  160.     kStyledField:
  161.             mData.SetStyled3 (GetEditTextChars (mStyledHandle));
  162.  
  163.     end; {switch}
  164. end;
  165.  
  166. {----------}
  167. Procedure CModelessText.DataChanged (
  168.     inDataID:        longint); Override;
  169. begin
  170.     if inDataID = idSmall3 then begin
  171.         SetControlText (mSmallHandle, mData.GetSmall3);
  172.     end;
  173.     if inDataID = idLarge3 then begin
  174.         SetControlText (mLargeHandle, mData.GetLarge3);
  175.     end;
  176.     if inDataID = idX12347 then begin
  177.         SetControlTextValue (mX12345Handle, mData.GetX12347);
  178.     end;
  179.     if inDataID = idX12345e8 then begin
  180.         SetControlTextFloat (mX12345e6Handle, mData.GetX12345e8);
  181.     end;
  182.     if inDataID = idPassword3 then begin
  183.         SetControlText (mPasswordHandle, mData.GetPassword3);
  184.     end;
  185.     if inDataID = idDate3 then begin
  186.         SetClockDateTime (mDateHandle, mData.GetDate3);
  187.     end;
  188.     if inDataID = idTime3 then begin
  189.         SetClockDateTime (mTimeHandle, mData.GetTime3);
  190.     end;
  191.     if inDataID = idStyled3 then begin
  192.         SetControlText (mStyledHandle, mData.GetStyled3);
  193.     end;
  194. end;
  195.  
  196. End.
  197.